package binary;
/** 十六进制 */
public class HexDemo {
    public static void main(String[] args) {
        /*
        16进制：缩写2进制
        1）0x为16进制字面量前缀
        2）0b为2进制字面量前缀，也可以用下划线分隔开
        3）计算机内部没有10进制，有没有16进制，只有2进制
        4)Integer.toHexString()可以将16进制数返回
          显示16进制：System.out.println(Integer.toHexString());
         */
        int n = 0b1000_0101;//0b代表2进制
        System.out.println(n);//133
        int m =0Xb18ff0;//0X代表16进制
        System.out.println(m);//179408880
        System.out.println(Integer.toBinaryString(m));//转2进制输出
        System.out.println(Integer.toHexString(n));//转16进制输出
        System.out.println(n);//转10进制输出
        System.out.println(m);//转10进制输出

        /*
        8进制：以0开头
        1）规则：逢8进1
        2）数字：0 1 2 3 4 5 6 7
        3）基数：8
        4）权：512 64 8 1
         */
        int a = 076;//以0开头表示8进制：
        System.out.println(a);//62,7个8加1个6
        /*
        小面试题：
        int a = 068; 正确吗？
        答：编译错误，因为0开头表示8进制，8进制最大数字为7
         */

    }
}
